This invention relates generally to the field of disc drive storage devices, and more particularly, but not by way of limitation, to improvements in the creation and evaluation of disc drive firmware code.
Hard disc drives are commonly used as the primary data storage and retrieval devices in modern computer systems. A typical disc drive is configured with a spindle motor to rotate one or more rigid magnetic recording discs at a constant high speed. User data are magnetically stored on tracks defined on the disc surfaces by an array of read/write heads supported by an actuator assembly. An actuator motor, such as a voice coil motor (VCM), is used to rotate the actuator assembly, and hence the heads, across the disc surfaces.
A closed loop, processor-based servo system operates to control disc rotation and the movement of the heads over the disc surfaces. The servo processor (typically a digital signal processor, or DSP) is provided with associated programming to output current command signals to both spindle and actuator driver circuits to adjust the current applied to the spindle motor and the actuator motor.
The servo processor hence carries out three main operations: controlling spindle motor speed; actuator seeking; and actuator track following. Spindle motor control involves sensing initial at rest position of the motor hub, ramping up spindle motor speed, and regulating the speed of the motor within certain tolerances.
A seek involves the movement of a selected head from an initial track to a destination track on the corresponding disc surface. At the beginning of a seek, the processor calculates an appropriate velocity profile indicative of a desired trajectory for the head based on the length of the seek (i.e., the number of tracks from the initial track to the destination track). Thereafter, the processor repetitively determines velocity error as the difference between the desired velocity and the actual velocity of the head, and outputs current command signals to cause the head to follow the desired velocity trajectory and come to rest over the destination track.
Track following involves the continued positioning of the head over a selected track. During track following, the processor receives position inputs from servo data transduced from the track and outputs appropriate current command signals to maintain the head in a desired relation to the selected track (such as over the center of the track). It will be noted that data are written to and read from data blocks (sectors) on the track during track following. Processor based servo systems are discussed, for example, in U.S Pat. No. 5,262,907 issued to Duffy et al., assigned to the assignee of the present invention.
In order to carry out the requisite servo control functions, the programming used by the servo processor must be generally tailored to the particular electromechanical response characteristics of the drive. While the basic layout of the servo processor programming (also referred to as xe2x80x9cfirmwarexe2x80x9d and xe2x80x9ccodexe2x80x9d) can be developed concurrently with other disc drive design functions, typically the programming cannot be fully written and debugged until after the mechanical configuration of the disc drive (actuator, discs, spindle motor) and the relevant electrical configuration of the disc drive (motor driver, servo data demodulator) become available, at least at an engineering prototype level. Hence, servo code development and debug operations have undesirably added significant time to the design cycle for new generations of disc drive products.
With continued demand for disc drives with ever increasing levels of data storage and transfer performance, the production xe2x80x9clifexe2x80x9d of each new disc drive product becomes increasingly shorter and is now on the order of only a few months. Thus, disc drive manufacturers are continually challenged to develop and introduce new disc drive products to the marketplace in very tight timing windows. There is therefore a significant need for improvements in the manner in which new disc drives are designed and evaluated, and it is to such improvements that the present invention is directed.
The present invention is directed to a method and apparatus for evaluating programming used by a programmable processor device in a disc drive to carry out servo control in a disc drive.
In accordance with preferred embodiments, the programming is first generated as a series of instructions executable by the programmable processor device. Commercially available, xe2x80x9coff-the-shelfxe2x80x9d processor emulation software is used to simulate execution of the instructions in a computer. A dynamic model of electrical and mechanical portions of the disc drive is generated using commercially available, off-the-shelf plant simulation software. A dynamic linking program is configured to synchronize and transfer data between the processor emulation software and the plant simulation software. All three programs are thereafter executed simultaneously in the computer to evaluate realtime operation of the programming.
In this way, the servo processor programming can be written and debugged before engineering prototypes are physically available. Moreover, extensive tolerance stack evaluation can be performed to improve the disc drive design configuration without the need to create multiple physical drives and test the drives under laboratory conditions for extended periods of time.
These and various other features as well as advantages which characterize the present invention will be apparent from a reading of the following detailed description and a review of the associated drawings.